Telegram Group & Telegram Channel
🧠 Хитрая задача на Go: "Петля Блуждающего Робота"

Представь: у тебя есть робот, который бродит по бесконечной двумерной решетке. Он выполняет команды из строки:

- 'G' — идти вперед
- 'L' — повернуть налево (90°)
- 'R' — повернуть направо (90°)

Робот стартует из точки (0, 0) и смотрит на север. Команды повторяются бесконечно. Нужно определить:

👉 Зациклится ли движение робота?
(т.е. вернётся ли он в исходную точку или навсегда останется в замкнутом цикле)

📌 Примеры:


isLooping("GLGLGLG") => true // движется по квадрату
isLooping("GG") => false // уходит навсегда


🧩 Подвох задачи:

На первый взгляд кажется, что нужно бесконечно симулировать команды. Но на самом деле всё решается за один проход строки!
Важно: если после одного прохода робот:
- вернулся в (0,0) или
- сменил направление — значит, будет цикл.

Go-реализация:

```go
func isLooping(commands string) bool {
dirs := [][2]int{{0,1}, {1,0}, {0,-1}, {-1,0}} // север, восток, юг, запад
x, y, d := 0, 0, 0

for _, c := range commands {
switch c {
case 'G':
x += dirs[d][0]
y += dirs[d][1]
case 'L':
d = (d + 3) % 4
case 'R':
d = (d + 1) % 4
}
}

return (x == 0 && y == 0) || d != 0
}
```

🎯 Отличная задача для собеседования: она проверяет
• понимание направления и симуляции
• знание работы с векторами
• умение заменить бесконечный цикл на математический анализ


@golangtests



tg-me.com/golangtests/775
Create:
Last Update:

🧠 Хитрая задача на Go: "Петля Блуждающего Робота"

Представь: у тебя есть робот, который бродит по бесконечной двумерной решетке. Он выполняет команды из строки:

- 'G' — идти вперед
- 'L' — повернуть налево (90°)
- 'R' — повернуть направо (90°)

Робот стартует из точки (0, 0) и смотрит на север. Команды повторяются бесконечно. Нужно определить:

👉 Зациклится ли движение робота?
(т.е. вернётся ли он в исходную точку или навсегда останется в замкнутом цикле)

📌 Примеры:


isLooping("GLGLGLG") => true // движется по квадрату
isLooping("GG") => false // уходит навсегда


🧩 Подвох задачи:

На первый взгляд кажется, что нужно бесконечно симулировать команды. Но на самом деле всё решается за один проход строки!
Важно: если после одного прохода робот:
- вернулся в (0,0) или
- сменил направление — значит, будет цикл.

Go-реализация:

```go
func isLooping(commands string) bool {
dirs := [][2]int{{0,1}, {1,0}, {0,-1}, {-1,0}} // север, восток, юг, запад
x, y, d := 0, 0, 0

for _, c := range commands {
switch c {
case 'G':
x += dirs[d][0]
y += dirs[d][1]
case 'L':
d = (d + 3) % 4
case 'R':
d = (d + 1) % 4
}
}

return (x == 0 && y == 0) || d != 0
}
```

🎯 Отличная задача для собеседования: она проверяет
• понимание направления и симуляции
• знание работы с векторами
• умение заменить бесконечный цикл на математический анализ


@golangtests

BY Go tests


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/golangtests/775

View MORE
Open in Telegram


Go tests Telegram | DID YOU KNOW?

Date: |

The lead from Wall Street offers little clarity as the major averages opened lower on Friday and then bounced back and forth across the unchanged line, finally finishing mixed and little changed.The Dow added 33.18 points or 0.10 percent to finish at 34,798.00, while the NASDAQ eased 4.54 points or 0.03 percent to close at 15,047.70 and the S&P 500 rose 6.50 points or 0.15 percent to end at 4,455.48. For the week, the Dow rose 0.6 percent, the NASDAQ added 0.1 percent and the S&P gained 0.5 percent.The lackluster performance on Wall Street came on uncertainty about the outlook for the markets following recent volatility.

What is Secret Chats of Telegram

Secret Chats are one of the service’s additional security features; it allows messages to be sent with client-to-client encryption. This setup means that, unlike regular messages, these secret messages can only be accessed from the device’s that initiated and accepted the chat. Additionally, Telegram notes that secret chats leave no trace on the company’s services and offer a self-destruct timer.

Go tests from fr


Telegram Go tests
FROM USA